package kr.hkit.Powerjava.chapter25.chat;

public class QuizProtocol {
	private static final int WATTING = 0;
	private static final int PROBLEM = 1;
	private static final int ANSWER = 2;
	
	private static final int NUMPROBLEMS = 3; //문제의 수
	
	private int state = WATTING; //현재상태
	private int currentProblem = 0;
	
	private String[] problems = {"네트워크 처리 패키지는?", "자바의 최신버전은?" , "인터넷에서 컴퓨터를 식별하는 주소는?"};
	private String[] answers = {"java.io" , "1.7" , "IP 주소"};

	public String process(String theInput) {
		String theOutput = null;
		
		switch(state){
			case QuizProtocol.WATTING:
				theOutput = "퀴즈를 시작합니다.(y/n)";
				state = QuizProtocol.PROBLEM;
				break;
			case QuizProtocol.PROBLEM:
				if(theInput.equalsIgnoreCase("y")){
					theOutput = problems[currentProblem];
					state = QuizProtocol.ANSWER;
				}else{
					state=QuizProtocol.WATTING;
					theOutput = "quit";
				}
				break;
			case QuizProtocol.ANSWER:
				if(theInput.equalsIgnoreCase(answers[currentProblem])){
					theOutput = "정답입니다.  계속 진행하시겠습니까? (y/n)";
					state = QuizProtocol.PROBLEM;
				}else{
					theOutput = "오답입니다.  계속 진행하시겠습니까? (y/n)";
					state = QuizProtocol.PROBLEM;
				}
				currentProblem = (currentProblem+1)%NUMPROBLEMS;
				break;
		}				
		return theOutput;
	}
}
